home *** CD-ROM | disk | FTP | other *** search
/ InterCD 2001 May / may_2001.iso / intercd / root / Html / ^CutePage / data1.cab / IE4Gadget_Template / todayca.js < prev    next >
Encoding:
Text File  |  2000-05-12  |  4.2 KB  |  192 lines

  1.  
  2. Months = new Array(12);
  3. Months[0] = "January";
  4. Months[1] = "February";
  5. Months[2] = "March";
  6. Months[3] = "April";
  7. Months[4] = "May";
  8. Months[5] = "June";
  9. Months[6] = "July";
  10. Months[7] = "August";
  11. Months[8] = "September";
  12. Months[9] = "October";
  13. Months[10] = "November";
  14. Months[11] = "December";
  15.  
  16. function PadSpaces(TheString)
  17. {
  18.     var Spaces = "             ";
  19.     len = Math.round((9 - TheString.length)/2);
  20.  
  21.     return Spaces.substring(0,len) + TheString;
  22. }
  23.  
  24. function NumLeapYears(StartYear, EndYear)
  25. {
  26.      var LeapYears, i;
  27.  
  28.      if (EndYear >= StartYear){
  29.          for(LeapYears = 0; StartYear <= EndYear; StartYear++)
  30.          if (IsLeapYear(StartYear)) LeapYears++;
  31.     }else{
  32.     for(LeapYears = 0; EndYear <= StartYear; EndYear++)
  33.          if (IsLeapYear(EndYear)) LeapYears++;
  34.     }
  35.      return LeapYears;
  36. }
  37.  
  38. function IsLeapYear(Year) 
  39. {
  40.     if(Math.round(Year/4) == Year/4){
  41.         if(Math.round(Year/100) == Year/100){
  42.             if(Math.round(Year/400) == Year/400)
  43.                 return true;
  44.             else return false;
  45.         }else return true;
  46.     }
  47.     return false;
  48. }
  49.  
  50. function Trim(TheString)
  51. {
  52.     var len;
  53.  
  54.     len = TheString.length;
  55.      while(TheString.substring(0,1) == " "){ //trim left
  56.          TheString = TheString.substring(1, len);
  57.           len = TheString.length;
  58.     }
  59.  
  60.      while(TheString.substring(len-1, len) == " "){ //trim right
  61.          TheString = TheString.substring(0, len-1);
  62.           len = TheString.length;
  63.      }
  64.      return TheString;
  65. }
  66.  
  67. function DetermineMonthIdx()
  68. {
  69.     var i, month, month_s, len;
  70.  
  71.  
  72.     month = Trim(document.srcteccalform.elements[4].value);
  73.     len = month.length;
  74.  
  75.     for( i = 0; i <12; i++){
  76.             month_s = Months[i].substring(0,len);
  77.         if (month_s.toUpperCase() == month.toUpperCase())
  78.                 return (i);
  79.       }
  80.       return -1;
  81. }
  82.  
  83. function FindNewYearStartingDay(Year)
  84. {
  85.      var LeapYears, Years, Day;
  86.  
  87.      LeapYears = NumLeapYears(1995, Year); 
  88.  
  89.      if  (Year >=1995)
  90.          Years = (Year -1995)+LeapYears;
  91.      else    Years = (Year -1995)-LeapYears; 
  92.  
  93.      if  (Year >=1995)
  94.         Day = Math.round(((Years/7 - Math.floor(Years/7))*7)+.1);
  95.      else    Day = Math.round(((Years/7 -  Math.ceil(Years/7))*7)-.1);
  96.     
  97.     if (Year >=1995){ 
  98.          if(IsLeapYear(Year)) Day--;
  99.      }else Day += 7;
  100.  
  101.      if(Day < 0) Day = 6;
  102.      if(Day > 6) Day = 0;
  103.      return Day;
  104. }
  105.  
  106. function FindNumDaysInMonth(Year, Month)
  107. {
  108.      if(Month == 1){
  109.            if(IsLeapYear(Year)) return 29;
  110.            else return 28;
  111.      }else{    
  112.            if(Month >6) Month++;
  113.            if(Month/2 == Math.round(Month/2))  return 31;
  114.      }
  115.  return 30;        
  116. }
  117.  
  118. function FindMonthStartDay(NewYearDay, Year, Month)
  119. {
  120.       var MonthStartDay;
  121.  
  122.       AddArray = new Array(12);
  123.  
  124.       AddArray[0]=0;AddArray[1]=3;AddArray[2]=3;AddArray[3]=6;
  125.     AddArray[4]=1;AddArray[5]=4;AddArray[6]=6;AddArray[7]=2;
  126.     AddArray[8]=5;AddArray[9]=0;AddArray[10]=3;AddArray[11]=5;
  127.  
  128.       MonthStartDay = NewYearDay + AddArray[Month];
  129.       if(IsLeapYear(Year)  && (Month ) > 1) MonthStartDay ++;
  130.   
  131.       if (MonthStartDay > 6) MonthStartDay -= 7;
  132.  
  133.       return MonthStartDay; 
  134. }
  135.  
  136. function  FillCalendar()
  137. {
  138.       var Year, Month, Midx, NewYearDay, MonthStartDay;
  139.     var NumDaysInMonth, i, t;
  140.  
  141.       Year = parseFloat(document.srcteccalform.elements[1].value);
  142.       Month = document.srcteccalform.elements[4].value;
  143.  
  144.       Midx  =  DetermineMonthIdx();
  145.       if (Midx == -1){
  146.            alert ("Can't recognize that month");
  147.            return;
  148.       }
  149.  
  150.       NewYearDay = FindNewYearStartingDay(Year);
  151.       MonthStartDay = FindMonthStartDay(NewYearDay, Year,  Midx);
  152.       NumDaysInMonth = FindNumDaysInMonth(Year, Midx);  
  153.  
  154.       for(i = 6;  i < 43;  i++){
  155.         t = i-5-MonthStartDay;
  156.         if ( t >= 1  &&  t <= NumDaysInMonth)
  157.             document.srcteccalform.elements[i].value =t;
  158.         else document.srcteccalform.elements[i].value = "";
  159.       }
  160. }
  161.  
  162. function IncDecYear(val)
  163. {
  164.     var valNum = parseInt(val);
  165.     var valNum2 = parseInt(document.srcteccalform.elements[1].value)
  166.     document.srcteccalform.elements[1].value = valNum2 + valNum;
  167.  
  168.     FillCalendar()
  169. }
  170.  
  171. function IncDecMonth(val)
  172. {
  173.     var valNum = parseInt(val);
  174.       var Midx  =  DetermineMonthIdx();
  175.     
  176.     Midx += valNum;
  177.     if(Midx > 11) 
  178.     {
  179.     Midx = 0;
  180.     IncDecYear(1)
  181.     }
  182.     if(Midx < 0) 
  183.     { 
  184.     Midx = 11;
  185.     IncDecYear(-1)
  186.     }
  187.     
  188.     document.srcteccalform.elements[4].value = PadSpaces(Months[Midx]);
  189.  
  190.     FillCalendar()
  191. }
  192.